#ifndef ZDARZENIE_H
#define ZDARZENIE_H

#include <iostream>
#include <iomanip>
#include "windows.h"
#include <stdio.h>
using namespace std;

enum typyZdarzen {	zadanie_wchodzi_do_kolejki = 0,
					maszyna_zwolniona = 1,
					kolejka_zwolniona = 2,
					zadanie_wchodzi_do_systemu = 3,
					zadanie_wychodzi_z_systemu = 4,
					zadanie_wykonane = 5,
					zadanie_wchodzi_do_maszyny = 6,
					tekst = 7};

class Zdarzenie
{
private:
	int czas;
	int priorytet;
	typyZdarzen typ;

	int zadanie;
	int gniazdo;
	int maszyna;
	string s1;

public:
	Zdarzenie(void);
	Zdarzenie(int _czas, int _priorytet, typyZdarzen _typ, int _zadanie);
	Zdarzenie(int _czas, int _priorytet, typyZdarzen _typ, int _zadanie, int _gniazdo);
	Zdarzenie(int _czas, int _priorytet, typyZdarzen _typ, int _zadanie, int _gniazdo, int _maszyna);
	Zdarzenie(int _czas, int _priorytet, typyZdarzen _typ, string _s1);

	~Zdarzenie(void);

	int getCzas() { return czas; }
	void setCzas(int _czas) { czas = _czas; }
	int getPriorytet() { return priorytet; }
	void setPriorytet(int p) { priorytet = p; }
	typyZdarzen getTypZdarzenia() { return typ; }
	void setTypZdarzenia(typyZdarzen t) { typ = t; }
	int getZadanie() { return zadanie; }
	int getGniazdo() { return gniazdo; }
	int getMaszyna() { return maszyna; }

	string wypisz();

	static bool comp(Zdarzenie * i, Zdarzenie * j)
    {
		/*if (i->getCzas() < j->getCzas()) return true;
		if (i->getCzas() > j->getCzas()) return false;
		if (i->getPriorytet() > j->getPriorytet()) return false;
		return true;*/
		return i->getCzas() < j->getCzas();
		
    } 
};

#endif
